<?php

class Mensaje_Model extends CI_Model {

    const STR_NOMBRE_TABLA = 'mensajes';
    const STR_NOMBRE_TABLA_USUARIO_MENSAJE = 'usuario_mensajes';
    const STR_NOMBRE_TABLA_MAESTRA = 'tabla_maestra';

    /**
     * Constructor
     * @author Leidy Uribe Marcos
     */
    function __construct() {
        parent::__construct();
    }

    /**
     * Registrar la información del mensaje.
     * @author Leidy Uribe Marcos
     */
    public function insert($data) {
        $this->db->set('contenido', $data['ckeditor']);
        $this->db->set('fecha_registro', $data['fecha_registro']);
        $this->db->set('usuario_creacion', $data['usuario_registro']);
        $this->db->set('id_estado', INT_ESTADO_ACTIVO);
        $this->db->insert(self::STR_NOMBRE_TABLA);
    }
    
    /**
     * Permite modificar la informacion de la tabla mensaje
     * @author Leidy Uribe Marcos
     */
    public function update($data){
    	$this->db->set('contenido', $data['ckeditor']);
    	$this->db->set('fecha_modificacion', $data['fecha_registro']);
    	$this->db->set('usuario_modificacion', $data['usuario_registro']);
    	$this->db->where('id_contenido_mensajes', $data['nro']);
    	$this->db->update(self::STR_NOMBRE_TABLA);
    }

    /**
     * Devolver el id insertado.
     * @author Leidy Uribe Marcos
     * @return int
     */
    public function getLastInserted() {
        return $this->db->insert_id();
    }
    
    /**
     * Registrar la información del mensaje y el usuario en usuario_mensaje
     * @author Leidy Uribe Marcos
     */
    public function insert_usuario_mensaje($data) {
    	$this->db->set('id_usuario', $data['id_usuario']);
    	$this->db->set('id_mensajes', $data['id_mensajes']);
    	$this->db->set('usuario_registro', $data['usuario_registro']);
    	$this->db->set('fecha_registro', $data['fecha_registro']);
    	$this->db->insert(self::STR_NOMBRE_TABLA_USUARIO_MENSAJE);
    }
    
    /**
     * Permite obtener el titulo de los mensajes de la tabla maestras
     * @author Leidy Uribe Marcos
     */
    public function getMensaje(){
    	$this->db->where('estado', '1');
    	$this->db->where('id_padre', INT_LISTA_MENSAJE);
    	$this->db->order_by('valor_1', 'ASC');
    	$query = $this->db->get(self::STR_NOMBRE_TABLA_MAESTRA);
    	return $query->result();
    }
    
    /**
     * permite buscar todo el contenido del mensaje segun el mensaje seleccionado
     * @author Leidy Uribe Marcos
     */
    public function buscarContenidoPorId($id){
    	$cont = $this->db->query('SELECT mensajes.id_mensajes AS id_mensajes, 
    			mensajes.contenido AS contenido, mensajes.fecha_registro AS fecha_registro, 
    			mensajes.usuario_creacion AS usuario_creacion, 
    			mensajes.fecha_modificacion AS fecha_modificacion, 
    			mensajes.usuario_modificacion AS usuario_modificacion, mensajes.id_estado AS id_estado,
    			mensajes.id_contenido_mensajes AS id_contenido_mensajes, tabla_maestra.nombre AS nombre
    			FROM mensajes, tabla_maestra
    			WHERE mensajes.id_contenido_mensajes = tabla_maestra.id_tabla_maestra AND
    			mensajes.id_estado = 2 AND 
    			mensajes.id_contenido_mensajes = '.$id);
    	return $cont->result();
    }
    
    /**
     * Permite buscar en la tabla usuario_mensajes si es que ya existe un registro con el 
     * id_usuario y el id_mensaje igual
     * entonces no lo registrara en dicha tabla
     * @author Leidy Uribe Marcos
     */
    public function buscar_usuario_mensaje($data){
    	$this->db->where('id_usuario', $data['id_usuario']);
    	$this->db->where('id_mensajes', $data['id_mensajes']);
    	$query = $this->db->get(self::STR_NOMBRE_TABLA_USUARIO_MENSAJE);
    	return $query->result();
    }

}
